package org.example.entiey;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor

/*
*   mybatisPlus默认表中名要与类名一致,不一致使用下面的方法
* */
@TableName("user")// 指定表名,这个类对应的是数据库中的user表
public class User {
    /*
    *
    *   使用MyBatisPlus,如果设置整型主键自增
    *   要求:
    *       不仅仅表中要设置主键自增 auto_increment
    *       对应实体类也要设置 逐渐自增
    *
    * */

    // @TableId 标识该属性为主键字段
    // value = "id" 对应表的字段为id
    // type = IdType.AUTO 表示主键为自动递增,添加操作时无需为主键赋值
    @TableId(value = "id" , type = IdType.AUTO)
    private Long id;// sql中bigint对应Long类型

    private String name;

    @TableField(select = false)// 表示敏感数据不允许查询,查询的时候忽略掉
    private String password;

    private Integer age;

    @TableField(value = "phone")// 处理表字段与属性值不一致问题,将表中phone字段的值存到tel中
    private String tel;

    @TableField(exist = false)// 表示这个email属性只在开发时类中使用,在表中不存在
    private String email;
}
